Java 服务端推送消息有那么难吗?
The following article is from 码农小胖哥 Author 码农小胖哥
点击蓝色“程序猿DD”关注我
回复“资源”获取独家整理的学习资料!
转自公众号:码农小胖哥
今天项目经理交给我一个开发任务。如果有人在前台下了订单就给后台仓库管理一个发货通知。也就是服务端触发一个事件,推送消息到客户端。
如果我用websocket来做还要搞个websocket服务器,而且还 有不少配置。websocket是全双工通信,单向通信简直是杀鸡用牛刀。用轮询吧,浪费服务器资源不说,还不一定实时,订单处理慢了岂不是怠慢了客户。有没有别的选择呢?当然有!
SSE 只能Server到Client单项,而Websocket是双向通信。
SSE 比 Websocket 轻量。当然功能要简单的多。开发便利,不牵涉协议升级问题。
由于SSE 是HTML5规范。所以对于APP端必须有HTML才能支持。并且IE如果要支持需要使用一些兼容开发包,比如polyfill库。客户端因为只接受事件所以开发比较简单:
声明客户端连接, 初始化EventSource对象。
编写监听器来监听事件。
今天介绍了SSE 服务端推送。和长轮训、comet、websocket相比而言比较轻量级。在一些需要服务器实时推送规模不大的业务场景实现更简单点。相信看了本文后你会很快入门。在实际开发中要根据业务对这几种推送进行技术选型。没有最好的只有最适合的。SSE对大多数开发者来说不够熟悉。
相关代码码云仓库:https://gitee.com/felord/sse-push
推荐关注:码农小胖哥
留言交流不过瘾?添加微信:zyc_enjoy
根据指引加入各种主题讨论群
每日一问
今日问题:移动2根火柴,构成一个新的等式。
(留言说说你的答案和解析吧,关注公众号,发送口令:Q20190829,核对正确答案)
昨日问答:点击查看
点一点“阅读原文”小惊喜在等你